import request from '../utils/request'

/**
 * 角色菜单管理API
 */
export const roleMenuApi = {
  /**
   * 为角色分配菜单（自动绑定对应权限）
   */
  assignMenusWithPermissions(roleId, menuIds) {
    return request.post('/role-menu/assign-with-permissions', menuIds, {
      params: { roleId }
    })
  },

  /**
   * 为角色分配菜单（不自动绑定权限）
   */
  assignMenusToRole(roleId, menuIds) {
    return request.post('/role-menu/assign', menuIds, {
      params: { roleId }
    })
  },

  /**
   * 同时分配菜单和权限
   */
  assignMenuAndPermissions(data) {
    return request.post('/role-menu/assign-menu-permission', data)
  },

  /**
   * 获取所有菜单树（用于角色菜单分配）
   */
  getMenuTreeForAssignment() {
    return request.get('/role-menu/menu-tree')
  },

  /**
   * 获取角色已分配的菜单ID列表
   */
  getRoleMenuIds(roleId) {
    return request.get(`/role-menu/role/${roleId}/menus`)
  },

  /**
   * 删除角色的所有菜单
   */
  removeRoleMenus(roleId) {
    return request.delete(`/role-menu/role/${roleId}`)
  },

  /**
   * 检查角色菜单权限一致性
   */
  checkMenuPermissionConsistency(roleId) {
    return request.post(`/role-menu/check-consistency/${roleId}`)
  }
}

export default roleMenuApi 